The present invention relates to a printer which converts a print code to pattern data and is capable of printing out the data in a bidirectional mode using a print head in which print elements are arranged in a plurality of arrays.
Generally, in a dot impact printer, a thermal printer, a thermal transfer printer, an ink jet printer and other various types of printers, print data are converted to pattern data such as characters, diagrams and others (represented by "characters" hereinafter) and, then, the pattern data are developed on an image buffer to print out characters.
In a prior art printer of the kind described, pattern data to be printed out are sequentially stored in addresses of an image buffer starting at the leading address to be developed on the image buffer and, then, sequentially read out of the image buffer starting at the leading address to be printed out. The problem with such a printer is that in a bidirectional printout mode since data entry from a host system constantly proceeds in the forward direction, during a reverse printout stroke data have to be read out in the reverse direction. That is, since no address in the image buffer becomes empty until all the image data have been read out during a forward printout stroke, data to be printed out by a reverse printout stroke cannot be stored during that period of time, resulting in a limited print speed.
Meanwhile, such a piror art printer is furnished with a character generator which comprises a read only memory (ROM) or the like having pattern data stored beforehand therein. To enhance the performance of a printer, it is desirable to furnish the printer with various kinds of printing functions such as a function of printing Kanji (Chinese characters) of the first level, and that of printing Kanji of the second level, and an ultrahigh-speed printing function, a high-speed printing function, a high-density printing function, etc. One approach to implement such various functions is storing in a ROM the pattern data representative of all the characters, Kanji, of the first and second levels or the pattern data representative of all the characters which belong to all the possible fonts, or print configurations, such as an ultrahigh-speed printing, a high-speed printing and a high-density printing, the ROM being installed in a printer body. However, should a ROM or like store loaded with patterns of all the fonts be permanently built in a printer body, it would increase the memory capacity of the print body as well as cost to a prohibitive degree.
In a print head, print elements are usually arranged in two staggered arrays one of which is made up of odd print elements and the other, even print elements. Hence, if print pattern data are stored according to the order of arrangement of pixels which are so printed out, print element drive data and the print pattern data are brought out of coincidence. In light of this, it has been customary to perform a printout control such that, for example, drive data associated with even print elements are obtained based on even ones of print pattern data and drive data associated with odd print elements based on odd ones. Specifically, such a prior art printout control scheme consists in reading three bytes (one column) of print pattern data which are aligned with odd print elements positions, then extracting only those data which are associated with odd print elements, then rearranging and storing the extracted data (1.5 bytes) in a data buffer, then reading three bytes (one column) of print pattern data which are aligned with the even print element positions, then extracting data associated with the even print elements, and then rearranging and storing the extracted data (1.5 bytes) in the data buffer. However, such awkward steps of selecting only odd data or even data out of one byte of data which are read out of a character generator and, then, rearranging the selected data result in a disproportionate data processing time which is contrary to the demand for high-speed data processing and, therefore, a high-speed printer.